﻿using System;
using System.Collections.Generic;
using System.Text;

namespace AliCMS.CourseModule
{
	public interface IInstanceConfig : IObject
	{
		Dictionary<string, string> GetBasicSettings();
		void SetBasicSettings(Dictionary<string, string> value);

		void Save();
	}
	public interface ICategory : IDbObject
    {
        void Move(int from, int to);
        void MoveRecommend(int from, int to);
    }
	public interface ITeacher : IDbObject
    {
        void IncrementHitCount(int id);
	}
	public interface ICourse : IDbObject
    {
        void Recycle(int id);
        void Recover(int id);

        void IncrementHitCount(int id);
    }
	public interface ILesson : IDbObject
	{
        void IncrementHitCount(int id);
	}
	public interface IAsk : IDbObject
	{
	}
	public interface ICourseStudy : IDbObject
	{
	}
	public interface ILessonStudy : IDbObject
	{
	}
	public interface IPromotion : IDbObject
	{
	}
	public interface ICollect : IDbObject
	{
	}
	public interface IOrder : IDbObject
	{
		void Pay(int id, Dictionary<string, object> data);

        #region 统计
        string Stat(Dictionary<string, object> data);
        string StatHourly(Dictionary<string, object> data);
        string StatDaily(Dictionary<string, object> data);
        string StatMonthly(Dictionary<string, object> data);
        #endregion

        #region 教师统计
        string Teacher_StatOne(Guid teacherId, Dictionary<string, object> data);
        string Teacher_StatAll(Dictionary<string, object> data);
        string Teacher_StatHourly(Guid teacherId, Dictionary<string, object> data);
        string Teacher_StatDaily(Guid teacherId, Dictionary<string, object> data);
        string Teacher_StatMonthly(Guid teacherId, Dictionary<string, object> data);
        #endregion

        #region 课程统计
        string Course_StatOne(Guid courseId, Dictionary<string, object> data);
        string Course_StatAll(Dictionary<string, object> data);
        string Course_StatHourly(Guid courseId, Dictionary<string, object> data);
        string Course_StatDaily(Guid courseId, Dictionary<string, object> data);
        string Course_StatMonthly(Guid courseId, Dictionary<string, object> data);
        #endregion

        #region 代理统计
        string Agent_StatOne(Guid agentId, Dictionary<string, object> data);
        string Agent_StatAll(Dictionary<string, object> data);
        string Agent_StatHourly(Guid agentId, Dictionary<string, object> data);
        string Agent_StatDaily(Guid agentId, Dictionary<string, object> data);
        string Agent_StatMonthly(Guid agentId, Dictionary<string, object> data);
        #endregion
    }
    public interface IMemberLevel : IDbObject
    {
    }
    public interface IMemberOrder : IDbObject
    {
        void Pay(int id, Dictionary<string, object> data);

        #region 统计
        string Stat(Dictionary<string, object> data);
        string StatHourly(Dictionary<string, object> data);
        string StatDaily(Dictionary<string, object> data);
        string StatMonthly(Dictionary<string, object> data);
        #endregion

        #region 代理统计
        string Agent_StatOne(Guid agentId, Dictionary<string, object> data);
        string Agent_StatAll(Dictionary<string, object> data);
        string Agent_StatHourly(Guid agentId, Dictionary<string, object> data);
        string Agent_StatDaily(Guid agentId, Dictionary<string, object> data);
        string Agent_StatMonthly(Guid agentId, Dictionary<string, object> data);
        #endregion
    }
    public interface IMember : IDbObject
    {
    }
}
